home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Pascal / Applications / TCPExample / PNL Libraries / MyMathUtils.p < prev    next >
Text File  |  1997-05-05  |  2KB  |  121 lines

  1. unit MyMathUtils;
  2.  
  3. interface
  4.  
  5.     uses
  6.         Types;
  7.  
  8.     function Min (a, b: longint): longint;
  9. {$IFC not GENERATINGPOWERPC}
  10.     inline
  11.         $201F, $2E9F, $B097, $6C02, $2E80;
  12. {$ENDC}
  13.  
  14.     function Max (a, b: longint): longint;
  15. {$IFC not GENERATINGPOWERPC}
  16.     inline
  17.         $201F, $2E9F, $B097, $6F02, $2E80;
  18. {$ENDC}
  19.  
  20.     function Pin (a, b, c: longint): longint;
  21. {$IFC not GENERATINGPOWERPC}
  22.     inline
  23.         $201F, $221F, $B280, $6F02, $2200, $201F, $B280, $6C02, $2200, $2E81;
  24. {$ENDC}
  25.  
  26.     function Choose (cond: boolean; a, b: longint): longint;
  27. {$IFC not GENERATINGPOWERPC}
  28.     inline
  29.         $201F, $221F, $4A1F, $6602, $2200, $2E81;
  30. {$ENDC}
  31.  
  32.     function RectWidth( const r: Rect ): longint;
  33.     function RectHeight( const r: Rect ): longint;
  34.     procedure CenterRect (var rectA: Rect; const rectB: Rect);
  35.     procedure OffsetRectTo( var r: Rect; h, v: integer );
  36.     procedure OffsetPt( var pt: Point; dh, dv: integer );
  37.     
  38.     function GoodBNOT(x:longint): longint;
  39.  
  40. implementation
  41.  
  42. {$IFC GENERATINGPOWERPC}
  43.     function Max (a, b: longint): longint;
  44.     begin
  45.         if a > b then begin
  46.             Max := a;
  47.         end else begin
  48.             Max := b;
  49.         end;
  50.     end;
  51.  
  52.     function Min (a, b: longint): longint;
  53.     begin
  54.         if a < b then begin
  55.             Min := a;
  56.         end else begin
  57.             Min := b;
  58.         end;
  59.     end;
  60.  
  61.     function Pin (a, b, c: longint): longint;
  62.     begin
  63.         if b < a then begin
  64.             Pin := a;
  65.         end else if b > c then begin
  66.             Pin := c;
  67.         end else begin
  68.             Pin := b;
  69.         end;
  70.     end;
  71.  
  72.     function Choose (cond: boolean; a, b: longint): longint;
  73.     begin
  74.         if cond then begin
  75.             Choose := a;
  76.         end else begin
  77.             Choose := b;
  78.         end;
  79.     end;
  80. {$ENDC}
  81.  
  82.     function RectWidth( const r: Rect ): longint;
  83.     begin
  84.         RectWidth := r.right - r.left;
  85.     end;
  86.     
  87.     function RectHeight( const r: Rect ): longint;
  88.     begin
  89.         RectHeight := r.bottom - r.top;
  90.     end;
  91.     
  92.     procedure CenterRect (var rectA: Rect; const rectB: Rect);
  93.         var
  94.             width, height: integer;
  95.  
  96.     begin
  97.         width := RectWidth( rectA );
  98.         height :=RectHeight( rectA );
  99.         OffsetRectTo( rectA, rectB.left + ((RectWidth( rectB ) div 2) - (width div 2)), rectB.top + ((RectHeight( rectB ) div 2) - (height div 2)));
  100.     end;
  101.     
  102.     procedure OffsetRectTo( var r: Rect; h, v: integer );
  103.     begin
  104.         r.right := h + RectWidth( r );
  105.         r.bottom := v + RectHeight( r );
  106.         r.left := h;
  107.         r.top := v;
  108.     end;
  109.     
  110.     procedure OffsetPt( var pt: Point; dh, dv: integer );
  111.     begin
  112.         pt.h := pt.h + dh;
  113.         pt.v := pt.v + dv;
  114.     end;
  115.     
  116.     function GoodBNOT(x:longint): longint;
  117.     begin
  118.         GoodBNOT := not(x);
  119.     end;
  120.  
  121. end.